﻿using Abp.Domain.Entities.Auditing;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace MyCompanyName.AbpZeroTemplate.Prm.Project
{
    public class ProjectDocmeut : FullAuditedEntity<int>
    {
        public virtual string CreationUser { get; set; }
        //项目Id
        public virtual int ProjectId { get; set; }

        public virtual int DocTypeId { get; set; }

        /// <summary>
        /// 提交时间(周报用)
        /// </summary>
        public virtual DateTime CommitDate
        {
            set;
            get;
        }

        /// <summary>
        /// 文件名称
        /// </summary>
        public virtual string Name
        {
            set;
            get;
        }

        #region 最新文件的信息，AttachmentVersion里面也有一份。

        /// <summary>
        /// 当前文件的大小（字节）。
        /// </summary>
        public virtual decimal Length { get; set; }

        /// <summary>
        /// 文件存储全路径，目前是由GridFS返回的hash名，通过该名即可取回原文件
        /// </summary>
        /// <remarks>
        /// 由外部接口返回  http://xx1.xx.com/xx.xx.xx.txt 
        /// 视具体情况，若外部接口不提供直接对外服务，
        /// 则这里只是返回外部接口取数据的路径，供当前web取回文件流即可。
        /// </remarks>
        public virtual Guid FullUrl { get; set; }

        /// <summary>
        /// 文件扩展名部分的字符串。后期版本更新后，可能会不等。
        /// </summary>
        /// <example>对于文件 c:\NewFile.txt，此属性返回“.txt”</example>
        public virtual string Extension { get; set; }

        #endregion

        /// <summary>
        /// 最新的版本号
        /// </summary>
        public virtual int VersionNo { get; set; }

        //[System.ComponentModel.DataAnnotations.Schema.ForeignKey("AttachmentId")]
        public virtual ICollection<ProjectDocmeutVersion> Versions { get; set; }

    }


    public class ProjectDocmeutVersion : FullAuditedEntity<int>
    {
        public virtual string CreationUser { get; set; }
        /// <summary>
        /// 所属文件Id
        /// </summary>
        public virtual int ProjectDocmeutId { get; set; }


        /// <summary>
        /// 文件名称
        /// </summary>
        public virtual string Name
        {
            set;
            get;
        }


        /// <summary>
        /// 文件名称
        /// </summary>
        public virtual string Extension
        {
            set;
            get;
        }

        /// <summary>
        /// 当前文件的大小（字节）。
        /// </summary>
        public virtual decimal Length { get; set; }

        /// <summary>
        /// 上传时的原始全路径
        /// </summary>
        public virtual string OriginalName { get; set; }

        /// <summary>
        /// 文件存储全路径，目前是由GridFS返回的hash名，通过该名即可取回原文件
        /// </summary>
        /// <remarks>
        /// 由外部接口返回  http://xx1.xx.com/xx.xx.xx.txt 
        /// 视具体情况，若外部接口不提供直接对外服务，
        /// 则这里只是返回外部接口取数据的路径，供当前web取回文件流即可。
        /// </remarks>
        public virtual Guid FullUrl { get; set; }

        /// <summary>
        /// 当为文本类可解析文件时，存储文件的 文本内容，供全文索引用
        /// </summary>
        public virtual string Content { get; set; }


        /// <summary>
        /// 版本号，从 1 开始
        /// </summary>
        public virtual int Version { get; set; }

    }








}
